package bomberman.modelo.mapa;

import java.util.ArrayList;

import org.jdom2.Element;

import bomberman.modelo.personajes.Bombita;
import bomberman.modelo.personajes.Enemigo;

public class Nivel {
  private Mapa                 mapa;
  private Bombita              bombita;
  private ArrayList<Enemigo> enemigos;
  
  public Nivel(Mapa mapa) {
    this.mapa = mapa;
    this.bombita = null;
    this.enemigos = new ArrayList<Enemigo>();
  }
 
public Nivel(Element eNivel) {
	enemigos = new ArrayList<Enemigo>();
	this.mapa= new Mapa(eNivel.getChild("Mapa"), this);
}

public Mapa getMapa() {
    return this.mapa;
  }
  
  public Bombita getBombita() {
    return this.bombita;
  }
  
  public void setBombita(Bombita unBombita) {
	  this.bombita = unBombita;
  }
  
  public void setBombita(Bombita unBombita, Posicion posicion) {
    this.bombita = unBombita;
    mapa.getCasillero(posicion).setContenidoBajo(unBombita);
    unBombita.setUbicacion(mapa.getCasillero(posicion));
  }
  
  public void agregarEnemigo(Enemigo enemigo) {
    this.enemigos.add(enemigo);
  }
  
  public boolean enemigosMuertos() {
    boolean enemigosMuertos = true;
    
    for (Enemigo enemigo: this.enemigos) {
      if (enemigo.getResistencia() > 0) {
        enemigosMuertos = false;
      }
    }
    
    return enemigosMuertos;
  }

  public Element serializar(){
	  Element eNivel = new Element("Nivel");
	  eNivel.addContent(this.mapa.serializar());
	  return eNivel;
  }
}
